nest.js團隊選用TypeORM作為與資料庫互動的介面,TypeORM也是以Typescript開源專案
nest.js裡使用TypeORM先要安裝下列套件
yarn add @nestjs/typeorm typeorm
再來根據選用的資料庫,到TypeORM Github,額外安裝套件
例如選用PostgreSQL
yarn add pg
TypeORM也提供CLI
npm install typeorm -g
專案目錄下輸入
typeorm init --database postgres
會展生ormconfig.json
{
"type": "postgres",
"host": "localhost",
"port": 5432,
"username": "postgres", //輸入預設的root帳號
"password": "xxx", // 密碼
"database": "users", // 指定資料庫名稱
"synchronize": true,
"logging": false,
"entities": [ // mapping class的放的位置,指定放在shared下
"src/shared/entity/**/*.ts"
],
"migrations": [ // 存放資料庫版本管控(migration)的檔案,指定放在shared下
"src/shared/migration/**/*.ts"
],
"subscribers": [
"src/subscriber/**/*.ts"
],
"cli": { //預設使用CLI產生檔案的目錄,指定放在shared資料夾下
"entitiesDir": "src/shared/entity",
"migrationsDir": "src/shared/migration",
"subscribersDir": "src/shared/subscriber"
}
}
利用CLI建立第一個Entity Class
typrorm entity:create -n User
import {Entity, PrimaryGeneratedColum} from "typeorm";
@Entity()
export class User {
@PrimaryGeneratedColumn() //建立table需要primary key
id: number;
}
在app.module.ts import TypeOrmModule
app.module.ts
...
mport {TypeOrmModule} from '@nestjs/typeorm';
@Module({
imports: [
SharedModule,
TypeOrmModule.forRoot(),
],
...
開啟pgadmin4新增users database
yarn start:dev
user table已建立